// 格式化学习数据 将对象转为数组
export function handleChangeTaskCommitJsonToArray(data) {
  Object.values(data).forEach((item) => {
    Object.values(item.taskResults).forEach((titem) => {
      // Object.keys(titem.guidelineResults).forEach((gkey) => {
      //   // if (!titem.guidelineResults[gkey].submitContent) {
      //   //   titem.guidelineResults[gkey].submitContent = {
      //   //     data: null,
      //   //     isEncoded: false
      //   //   }
      //   // }
      // })
      titem["guidelines"] = Object.values(sortArr(Object.values(titem.guidelineResults), 'noInTask')); // 格式化的时候排序
      // titem.guidelineResults = {undefined};
    });
    item["tasks"] = Object.values(sortArr(Object.values(item.taskResults), 'taskNoInGroup')); // 格式化的时候排序
    // item.taskResults = undefined;
  });
  data = Object.values(sortArr(Object.values(data), 'groupNoInCourse')); // 格式化的时候排序
  return data;
}

// 格式化课程详情 对象任务组、对象任务。   将任务组和任务格式化为 之前的数组对象格式
export function formatCourseGroupTaskObj(data, that) {
  if (!data) return;
  that.$set(data, "content", []);
  Object.keys(data.taskGroups).forEach((item) => {
    // 将tasks对象 格式化为数组
    let markTasksArray = [];
    Object.keys(data.taskGroups[item].tasks).forEach((titem) => {
      markTasksArray.push(data.taskGroups[item].tasks[titem]);
      // 将引导文格式化为数组
      let markGuidelineArray = [];
      let guidelines = data.taskGroups[item].tasks[titem].guidelines
      guidelines && Object.keys(guidelines).forEach(
        (gitem) => {
          markGuidelineArray.push(
            data.taskGroups[item].tasks[titem].guidelines[gitem]
          );
        }
      );
      markGuidelineArray = sortArr(markGuidelineArray, 'noInTask')
      that.$set(data.taskGroups[item].tasks[titem],"guidelines",markGuidelineArray);
      // 判断是否有任务设置，如果有则将任务设置的isHide属性赋值给任务。
      const taskID = data.taskGroups[item].tasks[titem].taskID;
      if (data?.taskSettings?.[taskID]) {
        that.$set(data.taskGroups[item].tasks[titem],"isHide", data.taskSettings[taskID].isHide);
      } else {
        that.$set(data.taskGroups[item].tasks[titem],"isHide", false);
      }
    });
    markTasksArray = sortArr(markTasksArray, 'taskNoInGroup')
    data.taskGroups[item].tasks = markTasksArray;
    data.content.push(data.taskGroups[item]);
  });
  data.content = sortArr(data.content, 'groupNoInCourse')
}

// 格式化引导文为数组
export function formatTasks_Guideline(tasks) {
  tasks.forEach(titem => {
    titem["guidelines"] = Object.values(sortArr(Object.values(titem.guidelineResults), 'noInTask'))
  })
}

// 排序
export function sortArr(arr, name) {
  // debugger
  return arr.sort(function (a, b) {
    return a[name] - b[name]
  })
}



export default {
  handleChangeTaskCommitJsonToArray, formatCourseGroupTaskObj, sortArr
}